package com.jdz.gxq.info.admin.role.service;

import java.util.List;
import java.util.Map;

import com.jdz.gxq.info.admin.role.bo.Menu;
import com.jdz.gxq.info.admin.role.bo.Role;
import com.jdz.gxq.info.admin.role.bo.RoleMenu;

public interface RoleService {

	/**
	 * Role检索分页用，查询记录条数
	 * 
	 * @return
	 */
	public int getRolesCount(String name);

	/**
	 * Role检索
	 * 
	 * @return
	 */
	public List<Role> getRoles(Map<String, Object> params);

	/**
	 * 追加Role
	 * 
	 * @param role
	 */
	public void insertRole(Role role);

	/**
	 * 更新Role
	 * 
	 * @param role
	 */
	public void updateRole(Role role);

	/**
	 * 通过id得到role
	 * 
	 * @param id
	 * @return
	 */
	public Role getRoleById(int id);

	/**
	 * 删除Role
	 * 
	 * @param role
	 */
	public void deleteRole(int id);

	/**
	 * 验证roleName是否重复 (重复返回:false) flag: 1 追加时验证 flag: 2 更新时验证
	 */
	public boolean checkRoleName(Role paramRole, int flag);
	
	/**
	 * 设置权限(读取权限菜单信息)
	 * @param roleId
	 * @param parentMenuId
	 * @return
	 */
	public List<Menu> getRoleMenuList(int roleId);
	
	/**
	 * 设置权限
	 * @param roleId
	 * @param roleMenuList
	 * @return
	 */
	public void setRoleMenus(int roleId, List<RoleMenu> roleMenuList, String modifiedBy);

}
